﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace WindowsGame1
{
    /// <summary>
    /// Classe para criar uma bola quicante na tela
    /// </summary>
    public class Bola:Sprite
    {
        Animacao normal;
        Animacao batendo;

        int tempoAnimacao;

        public Bola(ContentManager Content, GameWindow Window, string textura)
            :base(Content, Window, textura)
        {
            Velocidade = new Vector2(5,5);                 

            normal.qtd_quadros = 1;
            normal.quadros_seg = 1;
            normal.X_inicial = 0;
            normal.Y_inicial = 0;
            normal.quadro_X = 162;
            normal.quadro_Y = 166;
            normal.nome = "normal";

            batendo.qtd_quadros = 1;
            batendo.quadros_seg = 1;
            batendo.X_inicial = 0;
            batendo.Y_inicial = 166;
            batendo.quadro_X = 162;
            batendo.quadro_Y = 166;
            batendo.nome = "batendo";
            animacao_atual = normal;
        }

        public override void Update(GameTime gameTime)
        {
            Posicao += new Vector2(Velocidade.X, Velocidade.Y);
            
            if (animacao_atual.nome == "batendo")
            {
                tempoAnimacao++;

                if (tempoAnimacao > 25)
                {
                    animacao_atual = normal;
                    tempoAnimacao = 0;
                }
            }
             
            #region Manter na Tela

            if (Posicao.X > Window.ClientBounds.Width - Colisao.Width)
            {
                InverterVelocidadeX();
                animacao_atual = batendo;
            }

            if (Posicao.X < 0)
            {
                InverterVelocidadeX();
                animacao_atual = batendo;               
            }

            if (Posicao.Y > Window.ClientBounds.Height - Colisao.Height)
            {
                Posicao = new Vector2(Posicao.X, Window.ClientBounds.Height - Colisao.Height);
                InverterVelocidadeY();
                animacao_atual = batendo;               
            }

            if (Posicao.Y < 0)
            {
                Posicao = new Vector2(Posicao.X, 0);
                InverterVelocidadeY();
                animacao_atual = batendo;              
            }
            #endregion

        }
    }
}
